
const path = require('path')
const fs = require('fs-extra') // fs模块的扩展模块
const Inquirer = require('inquirer') // 用户选择框模块
const Creater = require('./Creater')

module.exports = async function (projectName, options) {
  const cwd = process.cwd() // 获取当前命令执行时的工作目录
  const targetDir = path.join(cwd, projectName) // 创建目标的目标目录

  if (fs.existsSync(targetDir)) { // 判断当前目录是否存在
    if (options.force) { // 如果传了force参数 表示要强制创建, 则删除这个目录
      await fs.remove(targetDir)
    } else {
      let { action } = await Inquirer.prompt([
        { // 配置询问方式
          name: 'action', // 这个名字会在await中返回
          type: 'list',
          message: `Target directory already exists Pick an action:`,
          choices: [ // 控制台中的选项
            { name: 'Overwrite', value: 'overwrite' },
            { name: 'Cancel', value: false }
          ]
        }
      ])

      if (!action) {
        return false
      } else if (action === 'overwrite') {
        console.log(`\r\n removing.....`)
        await fs.remove(targetDir)
      }
      console.log(action)
    }
  }
  // 创建项目
  const creater = new Creater(projectName, targetDir)
  creater.create()
  // console.log('creactjs-----', projectName, options, cwd)
}